Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Do SROA and DSE in alloc-opt #24478

Closed
wants to merge 3 commits into from
Closed

WIP: Do SROA and DSE in alloc-opt #24478

wants to merge 3 commits into from

Conversation

yuyichao
Copy link
Contributor

@yuyichao yuyichao commented Nov 5, 2017

This allow us to handle certain object allocations with object reference fields.
DSE is particularly useful on LLVM 5.0+ where we can take advantage of llvm store to load
forwarding to delete objects that's only used as local buffer.

This is also a prototype for the next gen optimization in type inference and to guide
the new IR format necessary for it.

Fix #16190


The first commit is #24475, which was discovered when working on this PR. The second commit should be a NFC clean up.

Currently this may not handle return-twice (try-catch) very well though it also isn't new to this change....

Only remove the call if all of the arguments are eliminated.
* Remove some tag handling code that's not needed anymore
* Put all the states in a struct

    There are already too many of them to pass around
    and there will likely be even more in the future
@yuyichao yuyichao added compiler:codegen Generation of LLVM IR and native code performance Must go faster labels Nov 5, 2017
@yuyichao yuyichao changed the title WIP: Do SORA and DSE in alloc-opt WIP: Do SROA and DSE in alloc-opt Nov 5, 2017
This allow us to handle certain object allocations with object reference fields.
DSE is particularly useful on LLVM 5.0+ where we can take advantage of llvm store to load
forwarding to delete objects that's only used as local buffer.

This is also a prototype for the next gen optimization in type inference and to guide
the new IR format necessary for it.

Fix #16190
@Keno Keno mentioned this pull request May 5, 2018
Keno added a commit that referenced this pull request May 7, 2018
@Keno Keno closed this May 9, 2018
@Keno
Copy link
Member

Keno commented May 9, 2018

Merged in #26990.

@DilumAluthge DilumAluthge deleted the yyc/codegen/alloc2 branch March 25, 2021 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler:codegen Generation of LLVM IR and native code performance Must go faster
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants